Currently, there are a number of systems that allow distributors and/or users to select and change the selection of the format of a media content stream during the streaming process. This allows the media content distributor and/or user to adjust the encoding format of the content being streamed to more efficiently use the available bandwidth. However, these systems typically have the media content to be streamed already encoded in various formats before the streaming begins and therefore do not have problems with processing, e.g., encoding, the content in real time into a plurality of formats while still maintaining synchronization of the encoded content. When content depicting live events is streamed, these systems have a number of drawbacks because the content needs to be processed into a plurality of formats in real time which is time consuming and complex to perform. In systems where the stream is serially encoded into different formats, the more encoded formats being offered for selection the longer the amount of time it requires to process the content into the different formats. Furthermore, if the processing is not done quickly enough content of the live event will be lost. Also to allow for the ability of the distributor and/or user to select between the different formats the encoded portions of content need to be synchronized otherwise once an initial format selection is done a selection to a different format will not be possible without gaps if the different encoded versions of the content as the different encoded versions of the content are made available at different times as soon as encoding is completed.
In view of the above discussion, there is a need for new methods and apparatus for efficient, high performance real time encoding and publishing of content streams so that an encoded stream can be made available in a plurality of formats in a synchronized manner allowing distributors or uses to dynamically in real time switch between different encoded formats during streaming.